package com.ybkj.daijia.server.interceptors;

import com.ybkj.daijia.common.Pager;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

/**
 * CopyRight &copy; 2012 成都易米网络科技有限公司. All Rights Reserved. <br/> 网址:http://www.easymin.com <br/> 电话: 028-61703886 *@author Shine *这里是分页数据的管理对象,大部分 V1.2前的分页代码中的 limit?,?依据此类或者由此类在mvc的拦截器接,收初始化参数，
 * *利用mvc的拦截器， developer 可以跳过controller的参数接收和传参到service， 666 *{@link com.ybkj.daijia.common.Pager} *v1.2后添加了github上的开源mybaits分页插件,pageHelper,如果联合这里的技术,再加上管理好url的设置就能做到后端开发不要半点和分页相关的代码
 * *和sql,很可惜.url 乱七八糟。 而且这里的首页数值是0， pagehelper的是1， 尴尬。 难受
 * @author shine
 */
public class PagerInterceptor extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object arg2) {
        String x_type = req.getHeader("X-type");
        if (StringUtils.isNotBlank(x_type) && x_type.equals("sign")) {
            return true;
        } else {
            //设置分页参数
            String start = req.getParameter("pager.offset");
            String limit = req.getParameter("limit");
            if (null != start) {
                Pager.setOffset(Integer.parseInt(start));
            } else {
                Pager.setOffset(0);
            }
            if (null != limit) {
                Pager.setLimit(Integer.parseInt(limit));
            } else {
                Pager.setLimit(20);
            }
            return true;
        }
    }
}
